A. Technical Field
The present invention relates to the configuration of products using selectable components, and more particularly to a visual configurator.
B. Background of the Invention
Several products offered for sale nowadays are composed of multiple selectable components which can be put together in various different configurations. When a consumer desires to purchase such a configurable product, she needs to communicate to the supplier of the product, which specific product configuration she wants. For instance, a computer system is an example of a configurable product, which comprises various selectable components, such as monitors, processors, memories, sound cards, printers, etc. A user can thus create a particular customized computer system by selecting a certain monitor, a certain processor, a certain memory, a certain sound card, a certain printer, and so on. It is, however, often the case that each component has specific properties which can be used advantageously with some other components, but which make the component incompatible for use with yet other components. Therefore, there are often constraints on which combinations of components can be selected. For example, selecting a particular processor may constrain the user's selection of the memory for a computer system. With an increase in the number of selectable components, as well as in the constraints governing the combinations of selections, decision-making by the consumer, and communication of those decisions to the suppliers, can get increasingly complicated.
These complications further increase when, instead of by face-to-face communications, the communications take place remotely, for instance over the phone or over the Internet. The increased popularity of e-commerce, and the willingness of consumers to purchase configurable products over the Internet, necessitate the facilitation of such communication. Nowadays, consumers often shop at a supplier's Internet web page (referred to as an “e-store”). In many cases, as a consumer browses through the e-store, products are visually and descriptively displayed, thereby allowing the user to have a virtual shopping experience. Once the consumer finds a product that she is interested in purchasing, she must configure the product to her exact liking. Depending on the product, the configuration may be fairly simple (e.g., selecting a color or size of the product), to fairly complex (e.g., a computer system or automobile). Regardless of the configuration complexity, in such remote communication environments, a configuration tool must be implemented to stand in the place of a human supplier.
Conventionally, such a configuration tool uses a user-interface (UI) with text menus. In some conventional system, each component typically has a drop-down menu of its own. As various components are selected, particular selections for some other components may get “grayed out” (that is they cannot be selected by the consumer) because they are incompatible with previously selected components. For instance, if a consumer shopping for a computer identifies the PENTIUM™ processor as the desired central processing unit (CPU) for the computer they wish to purchase, the available random access memory (RAM) feature of that computer may then be limited to 32 M-bytes or more. Thus, any RAM option having less than 32 M-bytes would be removed from the available features list by the configuration engine. The UI would reflect this by graying out options of less than 32M-bytes of RAM, and thus not letting the consumer choose them.
One problem with such conventional systems is that they often implement all of the intelligence (also known as the “inference engine”) on a remote server, separate from the client device on which the user interface is displayed. The client device and remote server are typically linked by the Internet, by means of a web-browser on the client device. Every time the user makes a selection of a component, the entire web page is sent over to the server, which checks the new state of the configurable product against all the constraints stored in the inference engine. The remote server then sends a whole new page back to the client device, validating or invalidating the user's choice of the selectable component. Because a whole page (that is a large amount of information) must be sent back and forth from the client device to the remote server over the Internet each time that a user selects a component, this process becomes extremely time consuming, especially when the network is congested.
Another problem with conventional systems is that such configurators cannot deal with problems requiring physical placement of objects. The special class of configuration problems which require a visual representation has not been previously appreciated. Such configuration problems require visual feedback, because in these cases physical placement of components is a required element in the configuration of a product. Such configuration problems can include configuration of gardens, aircraft control panels, computer networks, rack mounted computer systems, etc.
One solution to a problem involving visual configuration has included providing a UI which addressed one specific configurable problem—that of dispatch systems such as 911 emergency systems, where the relative positioning of switches, routers, and power supplies has a bearing on the system's ability to function. However, this solution addressed only the particular problem it was designed for, and could not be adapted to solve any other configuration problems involving visual placement. That is, the previous solutions did not address such physical placement configuration problems as a general class of problems requiring a general solution. In addition, this solution was based entirely on a single server, and could not be accessed from remote locations.
Thus there exists a need for a configurator which can be used with the general class of problems requiring physical placement. Further, there exists a need for such a configurator that stores most of its intelligence at a remote location, and can thus be accessed easily from multiple locations, but which utilizes a measure of client-side processing to provide user guided behavior in a fast and efficient manner.